#include <stdio.h>
#include "sys.h"
#include "led.h"
#include "key.h"
#include "esptim.h"
#include "gptim.h"
#include "pwm.h"
#include "oled.h"
#include "uart.h"
#include "exit.h"
#include "myrtc.h"
#include "adc1.h"
#include "FreeRTOS_cfg.h"

void app_main(void)
{
    nvs_init();
    led_init();
    key_init();
    esptim_init(1000000); // 参数的具体含义是定时器的周期时间，以微秒（μs）为单位,也就是周期为1s。
    timer_init(1*1000*1000, 1*1000*1000);   //参数分别是计数频率和自动重装载值 1Mhz，计数到1'000'000，也就是一秒的计数周期
    timer2_init(1*1000*1000, 500*1000);     //参数分别是计数频率和自动重装载值 1Mhz，计数到500'000，也就是0.5s的计数周期
    timer3_init(1*1000*1000, 250*1000);     //参数分别是计数频率和自动重装载值 1Mhz，计数到250'000，也就是0.25s的计数周期
    timer4_init(1*1000*1000, 100*1000);     //参数分别是计数频率和自动重装载值 1Mhz，计数到100'000，也就是0.1s的计数周期

    pwm_init(50); // 50hz的PWM
    pwm2_init(300); //300hz的PWM
    TIM_SetCompare(PWM_Channel_1,2048);
    TIM_SetCompare(PWM_Channel_2,1024);
    TIM_SetCompare(PWM_Channel_3,2048);
    TIM_SetCompare(PWM_Channel_4,1024);
    vTaskDelay(500);
    OLED_Init();
    OLED_Clear();
    OLED_ShowString(8,0,(u8 *)"hello",16);
    uart1_init(9600);
    exit_io17_init();
    exit_io18_init();
    rtc_set_time(2024,7,9,00,00,00);
    adc_init();
    freertos_start();
   while(1)
   {

   }

}
